The code excited linear predictive (CELP) speech compression procedure has been shown to provide excellent speech quality at low bit rates. Since its original introduction in 1984, much effort has been spent to make the procedure feasible for commercial applications. Thus, while the original procedure was computationally extremely expensive, many different techniques are now available to reduce the computational effort. Its current level of maturity makes the CELP procedure desirable for many applications where bandwidth is at a premium, such as voice mail/storage, secure telephony and mobile telephony.
In some applications the CELP procedure will encounter channel errors. Efforts to minimize the effect of channel errors on speech compression procedures can be divided into methods which change the robustness of the source coder, by taking advantage of redundancies in the transmitted information, and methods which add error correction and/or error detection by means of a separate channel coder. Conventional implementations of the latter approach add a channel coder which maps selected bits of the quantization indices of a compression procedure into generic error-correction/detection codes which do not depend on the source. That this procedure is not optimal is suggested by the fact that the bits to be protected by the error correcting codes are hand picked, based on a judgement of their sensitivity. The separation between source and channel coders is justified if an arbitrarily complex coder-decoder design is optimized for a channel of a particular capacity (usually a worst case channel). Then the source coder rate can be matched to the capacity of this channel, resulting in suboptimal performance for channels of higher or lower capacity (or equal capacity, but with different characteristics). Speech coders usually encounter a variety of error conditions, and in many cases low error rates are prevalent. It is desirable to have a speech coder which exploits maximally the prevalent channels and decreases minimally in performance with diminishing channel capacity. To obtain this behavior, the source distortion must be considered in the design of the channel coder.
As an illustration that the source distortion should be considered in optimizing a channel code which is used in channels of various error rates, consider the example of Table 1. A four level scalar quantizer, of which each level has identical a-priori probability (no redundancy in the transmitted bit stream), is encoded with three different encoding schemes. Assume that virtually all channels are without errors, except a few in which a significant random error rate occurs. Table 1 shows the well known L1 and L2 error criteria for single bit errors (two bit errors per code word are exceedingly unlikely at low error rates) per codeword per error for the three encoding schemes. All codes are optimized for channels with zero error rate and have zero redundancy, but code 1 will result in the lowest L2 distortion, and code 1 and code 2 result in the lowest L1 distortion for noisy channels.
TABLE 1 ______________________________________ Four-Level Quantizer Example code 1 code 2 code 3 ______________________________________ quantizer level 0.0 00 01 10 1.0 01 00 01 4.0 10 10 00 9.0 11 11 11 error criterion L1 4.5 4.5 6.0 L2 26.5 29.0 42.5 ______________________________________
This example makes clear that a coder optimized for a certain channel (a channel with no bit errors in this case) can be further optimized to enhance performance for channels of lower quality by considering the source quality.
A technique known as pseudo-Gray coding, described in J-H. Chen, G. Davidson, A. Bersho, and K. Zeger, "Speech Coding for the Mobile Satellite Experiment", Proc. IEEE Int. Conf. on Communications, 756-763, (June 1987), is used to optimize the arrangement of a codebook to protect against the effects of channel errors. The Chen procedure takes as input a codebook and yields a rearrangement of the codevectors that minimizes the expected time average bit-error distortion. The utility of the Chen procedure is somewhat limited however because it does not include the effects of redundancy in the optimization. This is a serious limitation since in most applications where channel errors are at all significant, some redundancy is desirable despite the typically low bit rates, e.g., 4.8 kilobits per second. Furthermore, the Chen procedure uses a gradient optimization technique which involves iteratively switching the positions of codevectors to reduce the expected value of the bit-error distortion until a locally optimal state is reached. However, since the function being optimized typically has more than one local minimum, the Chen procedure will frequently result in sub-optimum performance.
In view of the foregoing, a recognized need exists in the art for an optimized, source dependent channel coder where the error protective effects of redundancy are included in the optimization and where the resulting code is more than locally optimal.